import java.util.ArrayList;

// UserInvoker 类负责管理命令的调用和取消
class UserInvoker {
    private ArrayList<UserCommand> orders;  // 存储命令列表
    private ArrayList<UserCommand> cancelOrders;  // 存储需要取消的命令列表

    public UserInvoker() {
        orders = new ArrayList<>();
        cancelOrders = new ArrayList<>();
    }

    // 添加命令到订单列表
    public void addOrder(UserCommand task) {
        orders.add(task);
    }

    // 删除命令从订单列表
    public void delOrder(UserCommand task) {
        orders.remove(task);
    }

    // 通知所有命令开始执行
    public void notifyDo() {
        for (UserCommand command : orders) {
            command.executeCommand();
        }
    }

    // 通知所有命令取消执行
    public void notifyNotDo() {
        for (UserCommand command : cancelOrders) {
            command.cancelCommand();
        }
    }
}